package silentium.commons.configuration;
import org.reflections.Reflections;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import silentium.commons.ServerType;
import silentium.commons.configuration.annotations.PropertiesFile;
import silentium.commons.utils.PropertiesUtils;
import java.util.Set;
/**
* @author Tatanka
*/
public class PropertiesParser {
private static final Logger log = LoggerFactory.getLogger(PropertiesParser.class);
public static void parse() {
final Reflections reflections = new Reflections("silentium." + ServerType.getServerTypeName() + ".configs");
final Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(PropertiesFile.class);
for (final Class<?> clazz : annotated) {
final String propertiesPatch = clazz.getAnnotation(PropertiesFile.class).propertiesPatch();
ConfigurableProcessor.process(clazz, PropertiesUtils.load(propertiesPatch));
log.info("Loading: {}", propertiesPatch);
}
}
}